<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        
        
        
        <link rel="shortcut icon" href="../../img/favicon.ico">
        <title>Main - 络绎直播</title>
        <link href="../../css/bootstrap.min.css" rel="stylesheet">
        <link href="../../css/font-awesome.min.css" rel="stylesheet">
        <link href="../../css/base.css" rel="stylesheet">
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/github.min.css">

        <script src="../../js/jquery-1.10.2.min.js" defer></script>
        <script src="../../js/bootstrap.min.js" defer></script>
        <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/highlight.min.js"></script>
        <script>hljs.initHighlightingOnLoad();</script> 
    </head>

    <body>
        <div class="navbar fixed-top navbar-expand-lg navbar-dark bg-primary">
            <div class="container">
                <a class="navbar-brand" href="../..">络绎直播</a>
                <!-- Expander button -->
                <button type="button" class="navbar-toggler" data-toggle="collapse" data-target="#navbar-collapse">
                    <span class="navbar-toggler-icon"></span>
                </button>

                <!-- Expanded navigation -->
                <div id="navbar-collapse" class="navbar-collapse collapse">
                        <!-- Main navigation -->
                        <ul class="nav navbar-nav">
                            <li class="dropdown">
                                <a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown">首页 <b class="caret"></b></a>
                                <ul class="dropdown-menu">
                                    
<li>
    <a href="../.." class="dropdown-item">Main</a>
</li>
                                    
<li>
    <a href="../../luoyi/topic/" class="dropdown-item">话题</a>
</li>
                                    
<li>
    <a href="../../luoyi/search/" class="dropdown-item">搜索</a>
</li>
                                </ul>
                            </li>
                            <li class="dropdown active">
                                <a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown">用户 <b class="caret"></b></a>
                                <ul class="dropdown-menu">
                                    
<li>
    <a href="./" class="dropdown-item active">Main</a>
</li>
                                    
<li>
    <a href="../../luoyi/profile/" class="dropdown-item">Profile</a>
</li>
                                    
<li>
    <a href="../../luoyi/user/" class="dropdown-item">个人主页</a>
</li>
                                    
<li>
    <a href="../../luoyi/fans/" class="dropdown-item">关注/好友</a>
</li>
                                </ul>
                            </li>
                            <li class="dropdown">
                                <a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown">直播 <b class="caret"></b></a>
                                <ul class="dropdown-menu">
                                    
<li>
    <a href="../../luoyi/meeting/" class="dropdown-item">Main</a>
</li>
                                </ul>
                            </li>
                            <li class="dropdown">
                                <a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown">科学家 <b class="caret"></b></a>
                                <ul class="dropdown-menu">
                                    
<li>
    <a href="../../luoyi/scientist/" class="dropdown-item">Main</a>
</li>
                                </ul>
                            </li>
                            <li class="dropdown">
                                <a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown">论文 <b class="caret"></b></a>
                                <ul class="dropdown-menu">
                                    
<li>
    <a href="../../luoyi/article/" class="dropdown-item">Main</a>
</li>
                                </ul>
                            </li>
                            <li class="dropdown">
                                <a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown">通知 <b class="caret"></b></a>
                                <ul class="dropdown-menu">
                                    
<li>
    <a href="../../luoyi/im/" class="dropdown-item">Main</a>
</li>
                                </ul>
                            </li>
                            <li class="dropdown">
                                <a href="#" class="nav-link dropdown-toggle" data-toggle="dropdown">管理后台 <b class="caret"></b></a>
                                <ul class="dropdown-menu">
                                    
<li>
    <a href="../../admin/admin/" class="dropdown-item">Main</a>
</li>
                                    
<li>
    <a href="../../admin/admin_sys/" class="dropdown-item">系统管理</a>
</li>
                                    
<li>
    <a href="../../admin/admin_user/" class="dropdown-item">用户管理</a>
</li>
                                    
<li>
    <a href="../../admin/admin_tag/" class="dropdown-item">标签管理</a>
</li>
                                    
<li>
    <a href="../../admin/admin_article/" class="dropdown-item">论文管理</a>
</li>
                                    
<li>
    <a href="../../admin/admin_meeting/" class="dropdown-item">会议管理</a>
</li>
                                    
<li>
    <a href="../../admin/admin_profile/" class="dropdown-item">用户配置管理</a>
</li>
                                    
<li>
    <a href="../../admin/admin_album/" class="dropdown-item">专辑管理</a>
</li>
                                    
<li>
    <a href="../../admin/admin_banner/" class="dropdown-item">广告位管理</a>
</li>
                                    
<li>
    <a href="../../admin/admin_feed/" class="dropdown-item">推荐管理</a>
</li>
                                    
<li>
    <a href="../../admin/admin_cert/" class="dropdown-item">审核管理</a>
</li>
                                </ul>
                            </li>
                        </ul>

                    <ul class="nav navbar-nav ml-auto">
                        <li class="nav-item">
                            <a href="#" class="nav-link" data-toggle="modal" data-target="#mkdocs_search_modal">
                                <i class="fa fa-search"></i> Search
                            </a>
                        </li>
                            <li class="nav-item">
                                <a rel="prev" href="../../luoyi/search/" class="nav-link">
                                    <i class="fa fa-arrow-left"></i> Previous
                                </a>
                            </li>
                            <li class="nav-item">
                                <a rel="next" href="../../luoyi/profile/" class="nav-link">
                                    Next <i class="fa fa-arrow-right"></i>
                                </a>
                            </li>
                    </ul>
                </div>
            </div>
        </div>

        <div class="container">
            <div class="row">
                    <div class="col-md-3"><div class="navbar-light navbar-expand-md bs-sidebar hidden-print affix" role="complementary">
    <div class="navbar-header">
        <button type="button" class="navbar-toggler collapsed" data-toggle="collapse" data-target="#toc-collapse" title="Table of Contents">
            <span class="fa fa-angle-down"></span>
        </button>
    </div>

    
    <div id="toc-collapse" class="navbar-collapse collapse card bg-secondary">
        <ul class="nav flex-column">
            
            <li class="nav-item" data-level="1"><a href="#_1" class="nav-link">用户接口文档</a>
              <ul class="nav flex-column">
            <li class="nav-item" data-level="2"><a href="#_2" class="nav-link">修订记录</a>
              <ul class="nav flex-column">
              </ul>
            </li>
            <li class="nav-item" data-level="2"><a href="#_3" class="nav-link">背景</a>
              <ul class="nav flex-column">
              </ul>
            </li>
            <li class="nav-item" data-level="2"><a href="#_4" class="nav-link">产品说明</a>
              <ul class="nav flex-column">
              </ul>
            </li>
            <li class="nav-item" data-level="2"><a href="#_5" class="nav-link">关键流程说明</a>
              <ul class="nav flex-column">
              </ul>
            </li>
            <li class="nav-item" data-level="2"><a href="#_6" class="nav-link">接口说明</a>
              <ul class="nav flex-column">
              </ul>
            </li>
              </ul>
            </li>
        </ul>
    </div>
</div></div>
                    <div class="col-md-9" role="main">

<h1 id="_1">用户接口文档</h1>
<div class="toc">
<ul>
<li><a href="#_1">用户接口文档</a><ul>
<li><a href="#_2">修订记录</a></li>
<li><a href="#_3">背景</a></li>
<li><a href="#_4">产品说明</a></li>
<li><a href="#_5">关键流程说明</a></li>
<li><a href="#_6">接口说明</a><ul>
<li><a href="#_7">登录流程说明</a><ul>
<li><a href="#_8">登录头说明</a></li>
<li><a href="#_9">快捷登录</a></li>
<li><a href="#_10">手机号登录</a></li>
<li><a href="#_11">微信登录</a></li>
<li><a href="#10">1.0 手机号快速登录</a><ul>
<li><a href="#_12">接口说明</a></li>
<li><a href="#_13">请求说明</a></li>
<li><a href="#_14">输入参数</a></li>
<li><a href="#_15">错误说明</a></li>
<li><a href="#_16">返回实例</a></li>
</ul>
</li>
<li><a href="#11">1.1 获取短信验证码</a><ul>
<li><a href="#_17">接口说明</a></li>
<li><a href="#_18">请求说明</a></li>
<li><a href="#_19">输入参数</a></li>
<li><a href="#_20">错误说明</a></li>
<li><a href="#_21">返回实例</a></li>
</ul>
</li>
<li><a href="#12">1.2 用户注册/登录</a><ul>
<li><a href="#_22">接口说明</a></li>
<li><a href="#_23">请求说明</a></li>
<li><a href="#_24">输入参数</a></li>
<li><a href="#_25">错误说明</a></li>
<li><a href="#_26">返回实例</a></li>
</ul>
</li>
<li><a href="#13">1.3 获取用户信息</a><ul>
<li><a href="#_27">接口说明</a></li>
<li><a href="#_28">请求说明</a></li>
<li><a href="#_29">输入参数</a></li>
<li><a href="#_30">错误说明</a></li>
<li><a href="#_31">返回实例</a></li>
</ul>
</li>
<li><a href="#14">1.4 退出登录</a><ul>
<li><a href="#_32">接口说明</a></li>
<li><a href="#_33">请求说明</a></li>
<li><a href="#_34">输入参数</a></li>
<li><a href="#_35">错误说明</a></li>
<li><a href="#_36">返回实例</a></li>
</ul>
</li>
<li><a href="#15">1.5 修改用户信息</a><ul>
<li><a href="#_37">接口说明</a></li>
<li><a href="#_38">请求说明</a></li>
<li><a href="#_39">输入参数</a></li>
<li><a href="#_40">错误说明</a></li>
<li><a href="#_41">返回实例</a></li>
</ul>
</li>
<li><a href="#16-token">1.6 刷新token</a><ul>
<li><a href="#_42">接口说明</a></li>
<li><a href="#_43">请求说明</a></li>
<li><a href="#_44">输入参数</a></li>
<li><a href="#_45">错误说明</a></li>
<li><a href="#_46">返回实例</a></li>
</ul>
</li>
<li><a href="#17-step1">1.7 更新手机号接口step1</a><ul>
<li><a href="#_47">接口说明</a></li>
<li><a href="#_48">请求说明</a></li>
<li><a href="#_49">输入参数</a></li>
<li><a href="#_50">错误说明</a></li>
<li><a href="#_51">返回实例</a></li>
</ul>
</li>
<li><a href="#18-step2">1.8 更新手机号接口step2</a><ul>
<li><a href="#_52">接口说明</a></li>
<li><a href="#_53">请求说明</a></li>
<li><a href="#_54">输入参数</a></li>
<li><a href="#_55">错误说明</a></li>
<li><a href="#_56">返回实例</a></li>
</ul>
</li>
<li><a href="#19">1.9 设备号免密登录</a><ul>
<li><a href="#_57">接口说明</a></li>
<li><a href="#_58">请求说明</a></li>
<li><a href="#_59">输入参数</a></li>
<li><a href="#_60">错误说明</a></li>
<li><a href="#_61">返回实例</a></li>
</ul>
</li>
<li><a href="#20">2.0 根据手机号查询绑定信息</a><ul>
<li><a href="#_62">接口说明</a></li>
<li><a href="#_63">请求说明</a></li>
<li><a href="#_64">输入参数</a></li>
<li><a href="#_65">错误说明</a></li>
<li><a href="#_66">返回实例</a></li>
</ul>
</li>
<li><a href="#20_1">2.0 根据手机号绑定信息</a><ul>
<li><a href="#_67">接口说明</a></li>
<li><a href="#_68">请求说明</a></li>
<li><a href="#_69">输入参数</a></li>
<li><a href="#_70">错误说明</a></li>
<li><a href="#_71">返回实例</a></li>
</ul>
</li>
<li><a href="#21">2.1 用户配置获取</a><ul>
<li><a href="#_72">接口说明</a></li>
<li><a href="#_73">请求说明</a></li>
<li><a href="#_74">输入参数</a></li>
<li><a href="#_75">错误说明</a></li>
<li><a href="#_76">返回实例</a></li>
</ul>
</li>
<li><a href="#21_1">2.1 用户配置更新</a><ul>
<li><a href="#_77">接口说明</a></li>
<li><a href="#_78">请求说明</a></li>
<li><a href="#_79">输入参数</a></li>
<li><a href="#_80">错误说明</a></li>
<li><a href="#_81">返回实例</a></li>
</ul>
</li>
<li><a href="#22">2.2 用户认证</a><ul>
<li><a href="#_82">接口说明</a></li>
<li><a href="#_83">请求说明</a></li>
<li><a href="#_84">输入参数</a></li>
<li><a href="#_85">错误说明</a></li>
<li><a href="#_86">返回实例</a></li>
</ul>
</li>
<li><a href="#23">2.3 绑定邮箱步骤一</a><ul>
<li><a href="#_87">接口说明</a></li>
<li><a href="#_88">请求说明</a></li>
<li><a href="#_89">输入参数</a></li>
<li><a href="#_90">错误说明</a></li>
<li><a href="#_91">返回实例</a></li>
</ul>
</li>
<li><a href="#23_1">2.3 绑定邮箱步骤二</a><ul>
<li><a href="#_92">接口说明</a></li>
<li><a href="#_93">请求说明</a></li>
<li><a href="#_94">输入参数</a></li>
<li><a href="#_95">错误说明</a></li>
<li><a href="#_96">返回实例</a></li>
</ul>
</li>
<li><a href="#24">2.4 添加经历</a><ul>
<li><a href="#_97">接口说明</a></li>
<li><a href="#_98">请求说明</a></li>
<li><a href="#_99">输入参数</a></li>
<li><a href="#_100">返回实例</a></li>
</ul>
</li>
<li><a href="#25">2.5 修改经历</a><ul>
<li><a href="#_101">接口说明</a></li>
<li><a href="#_102">请求说明</a></li>
<li><a href="#_103">输入参数</a></li>
<li><a href="#_104">返回实例</a></li>
</ul>
</li>
<li><a href="#25_1">2.5 删除经历</a><ul>
<li><a href="#_105">接口说明</a></li>
<li><a href="#_106">请求说明</a></li>
<li><a href="#_107">输入参数</a></li>
<li><a href="#_108">返回实例</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<h2 id="_2">修订记录</h2>
<hr />
<table>
<thead>
<tr>
<th>日期</th>
<th>作者</th>
<th>修订类型</th>
<th>修订内容</th>
<th>版本</th>
</tr>
</thead>
<tbody>
<tr>
<td>2020年07月03日</td>
<td>冷立纲</td>
<td>A</td>
<td>新增设计方案</td>
<td>1.0</td>
</tr>
</tbody>
</table>
<blockquote>
<p>【修订类型：A-新增  M-修改 D-删除】</p>
</blockquote>
<h2 id="_3">背景</h2>
<p>用户注册登录相关接口</p>
<h2 id="_4">产品说明</h2>
<h2 id="_5">关键流程说明</h2>
<h2 id="_6">接口说明</h2>
<h3 id="_7">登录流程说明</h3>
<h4 id="_8">登录头说明</h4>
<p><em>将accessToken作为请求头 Authorization: 'token'  发送请求即可获取权限</em></p>
<h4 id="_9">快捷登录</h4>
<ol>
<li>sdk 获取认证码后调用 /user/xlogin 获取token</li>
<li>将accessToken作为请求头 Authorization: 'token'  发送请求</li>
</ol>
<h4 id="_10">手机号登录</h4>
<ol>
<li>调用短信发送接口发送短信验证 /user/sendsms </li>
<li>手机号注册登录获取token /user/joinin </li>
<li>将accessToken作为请求头 Authorization: 'token'  发送请求</li>
</ol>
<h4 id="_11">微信登录</h4>
<ol>
<li>微信授权回调接口 /oauth2/weixin/callback 获取登录token</li>
<li>将accessToken作为请求头 Authorization: 'token'  发送请求</li>
</ol>
<h4 id="10">1.0 手机号快速登录</h4>
<h5 id="_12">接口说明</h5>
<p>继承支付宝手机号认证快捷登录功能</p>
<h5 id="_13">请求说明</h5>
<table>
<thead>
<tr>
<th align="left">http 请求方式</th>
<th align="center">post</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">url</td>
<td align="center">/user/xlogin</td>
</tr>
</tbody>
</table>
<h5 id="_14">输入参数</h5>
<table>
<thead>
<tr>
<th align="left">参数</th>
<th align="center">必选</th>
<th align="left">类型</th>
<th align="left">参数说明</th>
<th align="left">备注</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">accessToken</td>
<td align="center">是</td>
<td align="left">string</td>
<td align="left">sdk  获取的认证码</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">deviceId</td>
<td align="center">是</td>
<td align="left">string</td>
<td align="left">设备号</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">deviceType</td>
<td align="center">否</td>
<td align="left">string</td>
<td align="left">设备类型</td>
<td align="left">1 手机  2 平板 3 pc 4 电脑</td>
</tr>
<tr>
<td align="left">os</td>
<td align="center">否</td>
<td align="left">string</td>
<td align="left">操作系统及版本</td>
<td align="left"></td>
</tr>
</tbody>
</table>
<h5 id="_15">错误说明</h5>
<p>先整理可能的错误类型，具体对应的错误码实施时再确定：</p>
<ol>
<li>非法验证码</li>
</ol>
<h5 id="_16">返回实例</h5>
<pre><code class="json">{
    &quot;c&quot;: 0,
    &quot;m&quot;: null,
    &quot;d&quot;: {
        &quot;uid&quot;: 10002,
        &quot;accessToken&quot;: &quot;eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOlsiMTAwMDIiLCJBMTUyMDEwMDg5NjEiXSwiZXhwIjoxNjIyMDE4NjEyfQ.rsnE-c-JoqcQEPtOLmLzeaHj4W59wAsFDs-hSi5Lxm4&quot;,
        &quot;accessExpiresIn&quot;: 1622018612028,
        &quot;refreshToken&quot;: &quot;TYmGcphEhmtqdky&quot;,
        &quot;refreshExpiresIn&quot;: 1627289012028,
        &quot;user&quot;: {
            &quot;uid&quot;: 10002,
            &quot;avatar&quot;: null, //头像
            &quot;name&quot;: null, //昵称
            &quot;gender&quot;: null, //性别 1:男 -1:女 0:保密 
            &quot;birthday&quot;: null, //生日
            &quot;status&quot;: 0, //
            &quot;mobile&quot;: &quot;15201008961&quot;, //手机号
            &quot;createTime&quot;: 1616406091691, //创建时间
            &quot;updateTime&quot;: null,
            &quot;userRole&quot;: null, 
            &quot;certStatus&quot;: null,
            &quot;workplace&quot;: null, //工作场所
            &quot;studySubject&quot;: null, //研究学科
            &quot;subjectField&quot;: null, //细分领域
            &quot;jobTitle&quot;: null, //工作头衔
            &quot;realName&quot;: null, //真实姓名
            &quot;admin&quot;: false
        },
        &quot;imToken&quot;: &quot;eJyrVgrxCdZLrSjILEpVsjI0sjQzMDDQAQuWpRYpWSkZ6RkoQfjFKdmJBQWZKUBlJgYGxpamFpYWEJnMlNS8ksy0TLAGQ6ABRjAtmelAkXTjcO0C-6KosAjnjFC3QHNfV9e8glBH7fCinLSwkvLkjJRUPzc37xyDwHJbqMaSzFyQc8wMzcxNLIwMjWoBxEQwYw__&quot;,
        &quot;new&quot;: false
    }
}
</code></pre>

<h4 id="11">1.1 获取短信验证码</h4>
<h5 id="_17">接口说明</h5>
<p>登录时，获取短信密码的功能，程序会有一个开关控制是否弹出动态页面验证码（防止短信接口被刷）</p>
<h5 id="_18">请求说明</h5>
<table>
<thead>
<tr>
<th align="left">http 请求方式</th>
<th align="center">post</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">url</td>
<td align="center">/user/sendsms</td>
</tr>
<tr>
<td align="left">token说明</td>
<td align="center">如果是更换手机号，校验手机身份需要登陆状态</td>
</tr>
</tbody>
</table>
<h5 id="_19">输入参数</h5>
<table>
<thead>
<tr>
<th align="left">参数</th>
<th align="center">必选</th>
<th align="left">类型</th>
<th align="left">参数说明</th>
<th align="left">备注</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">mobile</td>
<td align="center">是</td>
<td align="left">string</td>
<td align="left">用户注册或登录时所填的手机号</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">countryCode</td>
<td align="center">否</td>
<td align="left">string</td>
<td align="left">注册或登录手机号码的国际区号</td>
<td align="left">客户端需要过滤掉非数字的字符，例如：+86处理成86，+1-90处理成190等。如果不传此值，则默认为中国区号86。</td>
</tr>
<tr>
<td align="left">deviceId</td>
<td align="center">是</td>
<td align="left">string</td>
<td align="left">设备号</td>
<td align="left">只能是数字、大小写英文字母组成，且长度在1到100位之间</td>
</tr>
<tr>
<td align="left">smsType</td>
<td align="center">否</td>
<td align="left">Integer</td>
<td align="left">发短信的类型</td>
<td align="left">验证码的下发类型 1或不填（赋默认值1）：短信验证码 2：语音验证码</td>
</tr>
<tr>
<td align="left">interfaceType</td>
<td align="center">是</td>
<td align="left">Integer</td>
<td align="left">发短信的接口类型</td>
<td align="left">1：注册登录接口的发短信 2：修改手机号的发短信，俩接口区别在于后者需要手机号不能存在  4:公众号手机号登录 5:用户手机发短信校验，确定用户身份（用于更换手机号）</td>
</tr>
<tr>
<td align="left">captcha</td>
<td align="center">否</td>
<td align="left">Integer</td>
<td align="left">页面动态验证码</td>
<td align="left">用户获取短信验证码超过规定次数后弹出页面动态验证码。自测阶段恒需要弹动态验证码</td>
</tr>
<tr>
<td align="left">deviceType</td>
<td align="center">否</td>
<td align="left">String</td>
<td align="left">设备类型</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">code</td>
<td align="center">否</td>
<td align="left">string</td>
<td align="left">参数签名</td>
<td align="left">原code算法：MD5(mobile + deviceId + VERSION_SECRET_KEY + ct)添加上国际区号后的code算法：MD5(countryCode + mobile + deviceId + VERSION_SECRET_KEY + ct)备注：生成code的countryCode和mobile都必须是过滤掉特殊字符的，否则生成的code与服务端的会匹配不上。</td>
</tr>
<tr>
<td align="left">ct</td>
<td align="center">否</td>
<td align="left">string</td>
<td align="left">时间戳</td>
<td align="left">接口请求时的当前时间戳</td>
</tr>
<tr>
<td align="left">loginVersion</td>
<td align="center">是</td>
<td align="left">Integer</td>
<td align="left">当前支持登录的版本号</td>
<td align="left">目前支持loginVersion=1的版本登录</td>
</tr>
</tbody>
</table>
<h5 id="_20">错误说明</h5>
<p>先整理可能的错误类型，具体对应的错误码实施时再确定：</p>
<ol>
<li>
<p>缺少必填的参数。</p>
</li>
<li>
<p>无效的手机号码。</p>
</li>
<li>
<p>手机号发送验证码次数超限。</p>
</li>
<li>
<p>一分钟只能发送一条短信。</p>
</li>
<li>
<p>用户操作异常。</p>
</li>
</ol>
<h5 id="_21">返回实例</h5>
<pre><code class="json">{

  &quot;c&quot;: &quot;0&quot;

  &quot;m&quot;: &quot;操作成功&quot;,

  &quot;d&quot;: {}

}
</code></pre>

<h4 id="12">1.2 用户注册/登录</h4>
<h5 id="_22">接口说明</h5>
<p>用户通过手机号码接收短信密码后，登陆app</p>
<h5 id="_23">请求说明</h5>
<table>
<thead>
<tr>
<th align="left">http 请求方式</th>
<th align="center">post</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">url</td>
<td align="center">/user/joinin</td>
</tr>
</tbody>
</table>
<h5 id="_24">输入参数</h5>
<table>
<thead>
<tr>
<th align="left">参数</th>
<th align="center">必选</th>
<th align="left">类型</th>
<th align="left">参数说明</th>
<th align="left">备注</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">mobile</td>
<td align="center">是</td>
<td align="left">string</td>
<td align="left">用户注册或登录时所填的手机号</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">smscode</td>
<td align="center">是</td>
<td align="left">string</td>
<td align="left">短信密码</td>
<td align="left">必须是6位数</td>
</tr>
<tr>
<td align="left">deviceId</td>
<td align="center">是</td>
<td align="left">string</td>
<td align="left">用户的设备id</td>
<td align="left">合法字符长度在1到100位之间</td>
</tr>
<tr>
<td align="left">deviceType</td>
<td align="center">否</td>
<td align="left">Integer</td>
<td align="left">设备类型</td>
<td align="left">用户设备类型</td>
</tr>
<tr>
<td align="left">os</td>
<td align="center">否</td>
<td align="left">string</td>
<td align="left">操作系统</td>
<td align="left">操作系统类型</td>
</tr>
</tbody>
</table>
<h5 id="_25">错误说明</h5>
<ol>
<li>
<p>缺少必填的参数。</p>
</li>
<li>
<p>手机号格式错误。</p>
</li>
<li>
<p>短信密码无效。</p>
</li>
<li>
<p>短信密码校验失败。</p>
</li>
<li>
<p>您登录过于频繁，请稍后再试。</p>
</li>
<li>
<p>注册失败。</p>
</li>
</ol>
<h5 id="_26">返回实例</h5>
<pre><code class="json">
{
    &quot;c&quot;: 0,
    &quot;m&quot;: null,
    &quot;d&quot;: {
        &quot;uid&quot;: 11443, //用户ID
        &quot;accessToken&quot;: &quot;eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOlsiMTE0NDMiLCJBMTUyMDEwMDg5NjEiXSwiZXhwIjoxNTk5MDk4ODIzfQ.ng6CyFi4MTu-HtDRzffWpetApPrzM5z-JKv3a0t8v0g&quot;, //登录token
        &quot;accessExpiresIn&quot;: 1599098823065, //失效时间
        &quot;refreshToken&quot;: &quot;fMYerhGCyudmIhLUW&quot;, //刷新token
        &quot;refreshExpiresIn&quot;: 1604369223065, //刷新token 失效时间
        &quot;user&quot;: {
            &quot;uid&quot;: 10002,
            &quot;avatar&quot;: null, //头像
            &quot;name&quot;: null, //昵称
            &quot;gender&quot;: null, //性别 1:男 -1:女 0:保密 
            &quot;birthday&quot;: null, //生日
            &quot;status&quot;: 0, //
            &quot;mobile&quot;: &quot;15201008961&quot;, //手机号
            &quot;createTime&quot;: 1616406091691, //创建时间
            &quot;updateTime&quot;: null,
            &quot;userRole&quot;: null, 
            &quot;certStatus&quot;: null,
            &quot;workplace&quot;: null, //工作场所
            &quot;studySubject&quot;: null, //研究学科
            &quot;subjectField&quot;: null, //细分领域
            &quot;jobTitle&quot;: null, //工作头衔
            &quot;realName&quot;: null, //真实姓名
            &quot;admin&quot;: false
        }
    }
}

</code></pre>

<h4 id="13">1.3 获取用户信息</h4>
<h5 id="_27">接口说明</h5>
<p>登录后获取用户基本信息接口</p>
<h5 id="_28">请求说明</h5>
<table>
<thead>
<tr>
<th align="left">http 请求方式</th>
<th align="center">get</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">url</td>
<td align="center">/user/get</td>
</tr>
</tbody>
</table>
<h5 id="_29">输入参数</h5>
<p>无</p>
<h5 id="_30">错误说明</h5>
<h5 id="_31">返回实例</h5>
<pre><code class="json">
{
    &quot;c&quot;: 0,
    &quot;m&quot;: null,
    &quot;d&quot;: {
            &quot;uid&quot;: 10002,
            &quot;avatar&quot;: null, //头像
            &quot;name&quot;: null, //昵称
            &quot;gender&quot;: null, //性别 1:男 -1:女 0:保密 
            &quot;birthday&quot;: null, //生日
            &quot;status&quot;: 0, //
            &quot;mobile&quot;: &quot;15201008961&quot;, //手机号
            &quot;createTime&quot;: 1616406091691, //创建时间
            &quot;updateTime&quot;: null,
            &quot;userRole&quot;: null, 
            &quot;certStatus&quot;: null,
            &quot;workplace&quot;: null, //工作场所
            &quot;studySubject&quot;: null, //研究学科
            &quot;subjectField&quot;: null, //细分领域
            &quot;jobTitle&quot;: null, //工作头衔
            &quot;realName&quot;: null, //真实姓名
            &quot;admin&quot;: false
        }}

</code></pre>

<h4 id="14">1.4 退出登录</h4>
<h5 id="_32">接口说明</h5>
<p>退出登录</p>
<h5 id="_33">请求说明</h5>
<table>
<thead>
<tr>
<th align="left">http 请求方式</th>
<th align="center">get</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">url</td>
<td align="center">/user/logout</td>
</tr>
</tbody>
</table>
<h5 id="_34">输入参数</h5>
<p>无</p>
<h5 id="_35">错误说明</h5>
<h5 id="_36">返回实例</h5>
<pre><code class="json">
{
    &quot;c&quot;: 0,
    &quot;m&quot;: null,
    &quot;d&quot;: {

    }
}

</code></pre>

<h4 id="15">1.5 修改用户信息</h4>
<h5 id="_37">接口说明</h5>
<p>修改用户基本信息</p>
<h5 id="_38">请求说明</h5>
<table>
<thead>
<tr>
<th align="left">http 请求方式</th>
<th align="center">post</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">url</td>
<td align="center">/user/update</td>
</tr>
</tbody>
</table>
<h5 id="_39">输入参数</h5>
<table>
<thead>
<tr>
<th align="left">参数</th>
<th align="center">必选</th>
<th align="left">类型</th>
<th align="left">参数说明</th>
<th align="left">备注</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">avatar</td>
<td align="center">否</td>
<td align="left">string</td>
<td align="left">头像</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">birthday</td>
<td align="center">否</td>
<td align="left">int</td>
<td align="left">生日</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">gender</td>
<td align="center">否</td>
<td align="left">int</td>
<td align="left">性别</td>
<td align="left">1:男  2:女  0:未知</td>
</tr>
<tr>
<td align="left">name</td>
<td align="center">否</td>
<td align="left">string</td>
<td align="left">姓名</td>
<td align="left">用户名</td>
</tr>
<tr>
<td align="left">workplace</td>
<td align="center">否</td>
<td align="left">string</td>
<td align="left">工作</td>
<td align="left">工作</td>
</tr>
<tr>
<td align="left">studySubject</td>
<td align="center">否</td>
<td align="left">string</td>
<td align="left">研究学科</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">subjectField</td>
<td align="center">否</td>
<td align="left">string</td>
<td align="left">研究领域</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">subjectId</td>
<td align="center">否</td>
<td align="left">int</td>
<td align="left">专业方向ID</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">fieldId</td>
<td align="center">否</td>
<td align="left">int</td>
<td align="left">细分领域ID</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">jobTitle</td>
<td align="center">否</td>
<td align="left">string</td>
<td align="left">头衔</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">realName</td>
<td align="center">否</td>
<td align="left">string</td>
<td align="left">真实姓名</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">worktype</td>
<td align="center">否</td>
<td align="left">int</td>
<td align="left">工作类型 1 学校 2 企业</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">brief</td>
<td align="center">否</td>
<td align="left">string</td>
<td align="left">简介</td>
<td align="left">最多200字符</td>
</tr>
</tbody>
</table>
<h5 id="_40">错误说明</h5>
<h5 id="_41">返回实例</h5>
<pre><code class="json">
{
    &quot;c&quot;: 0,
    &quot;m&quot;: null,
    &quot;d&quot;: {

    }
}

</code></pre>

<h4 id="16-token">1.6 刷新token</h4>
<h5 id="_42">接口说明</h5>
<p>刷新登录token</p>
<h5 id="_43">请求说明</h5>
<table>
<thead>
<tr>
<th align="left">http 请求方式</th>
<th align="center">post</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">url</td>
<td align="center">/user/token/refresh</td>
</tr>
</tbody>
</table>
<h5 id="_44">输入参数</h5>
<table>
<thead>
<tr>
<th align="left">参数</th>
<th align="center">必选</th>
<th align="left">类型</th>
<th align="left">参数说明</th>
<th align="left">备注</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">refreshToken</td>
<td align="center">是</td>
<td align="left">string</td>
<td align="left">刷新token</td>
<td align="left"></td>
</tr>
</tbody>
</table>
<h5 id="_45">错误说明</h5>
<h5 id="_46">返回实例</h5>
<pre><code class="json">
{
    &quot;c&quot;: 0,
    &quot;m&quot;: null,
    &quot;d&quot;: {
        &quot;id&quot;: 88,
        &quot;uid&quot;: 11443,  //用户id
        &quot;deviceId&quot;: &quot;A15201008961&quot;, //设备号
        &quot;deviceType&quot;: 1, //设备类型
        &quot;os&quot;: null, //操作系统
        &quot;accessToken&quot;: &quot;eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOlsiMTE0NDMiLCJBMTUyMDEwMDg5NjEiXSwiZXhwIjoxNTk5MTAyOTY0fQ.0ShFRmKL1pLB9-Bq4vyOHxEvJWU0NqJT74STiA6RHoc&quot;,  //access token
        &quot;accessExpiresIn&quot;: 1599102964223, // 失效时间
        &quot;refreshToken&quot;: &quot;enIuFVWofatzMTqEyg&quot;, //刷新token
        &quot;refreshExpiresIn&quot;: 1604373364223, //刷新token失效时间
        &quot;createTime&quot;: null,
        &quot;updateTime&quot;: null,
        &quot;pass&quot;: &quot;tTofWxX&quot; //解密密钥
    }
}

</code></pre>

<h4 id="17-step1">1.7 更新手机号接口step1</h4>
<h5 id="_47">接口说明</h5>
<p>验证已有手机号</p>
<h5 id="_48">请求说明</h5>
<table>
<thead>
<tr>
<th align="left">http 请求方式</th>
<th align="center">post</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">url</td>
<td align="center">/user/mobile/update/step1</td>
</tr>
</tbody>
</table>
<h5 id="_49">输入参数</h5>
<table>
<thead>
<tr>
<th align="left">参数</th>
<th align="center">必选</th>
<th align="left">类型</th>
<th align="left">参数说明</th>
<th align="left">备注</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">mobile</td>
<td align="center">是</td>
<td align="left">string</td>
<td align="left">手机号</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">smscode</td>
<td align="center">是</td>
<td align="left">string</td>
<td align="left">验证码</td>
<td align="left">/user/sendsms  interfaceType 5 发送</td>
</tr>
</tbody>
</table>
<h5 id="_50">错误说明</h5>
<h5 id="_51">返回实例</h5>
<pre><code class="json">
{
    &quot;c&quot;: 0,
    &quot;m&quot;: null,
    &quot;d&quot;: {
       &quot;secret&quot;:&quot;FnWVgshcWl&quot;
    }
}

</code></pre>

<h4 id="18-step2">1.8 更新手机号接口step2</h4>
<h5 id="_52">接口说明</h5>
<p>验证已有手机号</p>
<h5 id="_53">请求说明</h5>
<table>
<thead>
<tr>
<th align="left">http 请求方式</th>
<th align="center">post</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">url</td>
<td align="center">/user/mobile/update/step2</td>
</tr>
</tbody>
</table>
<h5 id="_54">输入参数</h5>
<table>
<thead>
<tr>
<th align="left">参数</th>
<th align="center">必选</th>
<th align="left">类型</th>
<th align="left">参数说明</th>
<th align="left">备注</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">mobile</td>
<td align="center">是</td>
<td align="left">string</td>
<td align="left">手机号</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">smscode</td>
<td align="center">是</td>
<td align="left">string</td>
<td align="left">验证码</td>
<td align="left">/user/sendsms  interfaceType 2 发送</td>
</tr>
<tr>
<td align="left">secret</td>
<td align="center">是</td>
<td align="left">string</td>
<td align="left">验证码</td>
<td align="left">第一步验证手机返回</td>
</tr>
</tbody>
</table>
<h5 id="_55">错误说明</h5>
<h5 id="_56">返回实例</h5>
<pre><code class="json">
{
    &quot;c&quot;: 0,
    &quot;m&quot;: null,
    &quot;d&quot;: {

    }
}

</code></pre>

<h4 id="19">1.9 设备号免密登录</h4>
<h5 id="_57">接口说明</h5>
<p>继承支付宝手机号认证快捷登录功能</p>
<h5 id="_58">请求说明</h5>
<table>
<thead>
<tr>
<th align="left">http 请求方式</th>
<th align="center">post</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">url</td>
<td align="center">/user/device/login</td>
</tr>
</tbody>
</table>
<h5 id="_59">输入参数</h5>
<table>
<thead>
<tr>
<th align="left">参数</th>
<th align="center">必选</th>
<th align="left">类型</th>
<th align="left">参数说明</th>
<th align="left">备注</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">deviceId</td>
<td align="center">是</td>
<td align="left">string</td>
<td align="left">设备号</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">deviceType</td>
<td align="center">否</td>
<td align="left">string</td>
<td align="left">设备类型</td>
<td align="left">5 广告屏</td>
</tr>
<tr>
<td align="left">os</td>
<td align="center">否</td>
<td align="left">string</td>
<td align="left">操作系统及版本</td>
<td align="left"></td>
</tr>
</tbody>
</table>
<h5 id="_60">错误说明</h5>
<p>先整理可能的错误类型，具体对应的错误码实施时再确定：</p>
<ol>
<li>非法验证码</li>
</ol>
<h5 id="_61">返回实例</h5>
<pre><code class="json">{
    &quot;c&quot;: 0,
    &quot;m&quot;: null,
    &quot;d&quot;: {
        &quot;uid&quot;: 11443, //用户ID
        &quot;accessToken&quot;: &quot;eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOlsiMTE0NDMiLCJBMTUyMDEwMDg5NjEiXSwiZXhwIjoxNTk5MDk4ODIzfQ.ng6CyFi4MTu-HtDRzffWpetApPrzM5z-JKv3a0t8v0g&quot;, //登录token
        &quot;accessExpiresIn&quot;: 1599098823065, //失效时间
        &quot;refreshToken&quot;: &quot;fMYerhGCyudmIhLUW&quot;, //刷新token
        &quot;refreshExpiresIn&quot;: 1604369223065, //刷新token 失效时间
        &quot;user&quot;: { //用户信息
            &quot;uid&quot;: 11443,  //用户ID
            &quot;avatar&quot;: &quot;/c/d/e&quot;, //用户头像
            &quot;name&quot;: &quot;赵六&quot;, //用户昵称
            &quot;gender&quot;: 1, // 性别  1 男
            &quot;birthday&quot;: 153000000, //生日
            &quot;status&quot;: 0, //状态
            &quot;mobile&quot;: &quot;15201008961&quot;, //手机号
            &quot;createTime&quot;: 1590149492786, //创建时间
            &quot;updateTime&quot;: 1590149538735 //更新时间
        },  //im token
        &quot;imToken&quot;: &quot;eJyrVgrxCdZLrSjILEpVsjI0sjQzMDDQAQuWpRYpWSkZ6RkoQfjFKdmJBQWZKUBlJgYGxpamFpYWEJnMlNS8ksy0TLAGQ0MTE2OYlsx0oIi5Z7a3ZW5ZZWJBZFaZe65pSHClYaKjX2mpmUdOYkSVqU+QRURmUmWEc2SyLVRjSWYuyDmmlibGJpZGpka1AOQJMOU=&quot;
        &quot;bind&quot;:{  //绑定信息，未绑定则为空
            &quot;bindUid&quot;:123, //绑定用户ID
            &quot;avatar&quot;:&quot;/a&quot;, //头像
            &quot;roomId&quot;:&quot;1233&quot;,// 房间号
            &quot;name&quot;:&quot;房间名&quot;,// 房间号
            &quot;images&quot;:[&quot;/xxx&quot;] //房间图像
        }
    }
}
</code></pre>

<h4 id="20">2.0 根据手机号查询绑定信息</h4>
<h5 id="_62">接口说明</h5>
<p>根据手机号查询绑定信息</p>
<h5 id="_63">请求说明</h5>
<table>
<thead>
<tr>
<th align="left">http 请求方式</th>
<th align="center">get</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">url</td>
<td align="center">/user/device/mobile_query</td>
</tr>
</tbody>
</table>
<h5 id="_64">输入参数</h5>
<table>
<thead>
<tr>
<th align="left">参数</th>
<th align="center">必选</th>
<th align="left">类型</th>
<th align="left">参数说明</th>
<th align="left">备注</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">mobile</td>
<td align="center">是</td>
<td align="left">string</td>
<td align="left">手机号</td>
<td align="left"></td>
</tr>
</tbody>
</table>
<h5 id="_65">错误说明</h5>
<h5 id="_66">返回实例</h5>
<pre><code class="json">
{
    &quot;c&quot;: 0,
    &quot;m&quot;: null,
    &quot;d&quot;: {
        &quot;user&quot;: {
            &quot;uid&quot;: 12211,
            &quot;avatar&quot;: &quot;FqobfidNNFd8D9kTNMD3AIHhEZY4.jpg&quot;,
            &quot;name&quot;: null,
            &quot;gender&quot;: null,
            &quot;birthday&quot;: null,
            &quot;status&quot;: 0,
            &quot;mobile&quot;: &quot;12112131091&quot;,
            &quot;createTime&quot;: 1597816931995,
            &quot;updateTime&quot;: 1597816949338,
            &quot;avatarStatus&quot;: 1,
            &quot;userRole&quot;: null,
            &quot;admin&quot;: false
        },
        &quot;room&quot;: {
            &quot;id&quot;: &quot;B0GR3CK5FZ&quot;,
            &quot;parent&quot;: [],
            &quot;name&quot;: &quot;万鑫小馆&quot;,
            &quot;type&quot;: &quot;餐饮服务;快餐厅;快餐厅&quot;,
            &quot;distance&quot;: null,
            &quot;typeCode&quot;: &quot;050300&quot;,
            &quot;bizType&quot;: null,
            &quot;longitude&quot;: 116.481957,
            &quot;latitude&quot;: 39.996011,
            &quot;pcode&quot;: &quot;110000&quot;,
            &quot;pname&quot;: null,
            &quot;citycode&quot;: &quot;010&quot;,
            &quot;cityname&quot;: null,
            &quot;adcode&quot;: &quot;110105&quot;,
            &quot;businessArea&quot;: &quot;望京&quot;,
            &quot;images&quot;: [
                &quot;http://resources.kinstalk.com/gfetifkkhop3zbdfhmo9.jpg&quot;
            ],
            &quot;addTime&quot;: 1597816966532,
            &quot;updateTime&quot;: null,
            &quot;userCount&quot;: 5,
            &quot;adname&quot;: null,
            &quot;delete&quot;: false,
            &quot;roomType&quot;: 0,
            &quot;groupCreated&quot;: true
        }
    }
}

</code></pre>

<h4 id="20_1">2.0 根据手机号绑定信息</h4>
<h5 id="_67">接口说明</h5>
<p>根据手机号查询绑定信息</p>
<h5 id="_68">请求说明</h5>
<table>
<thead>
<tr>
<th align="left">http 请求方式</th>
<th align="center">get</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">url</td>
<td align="center">/user/device/mobile_bind</td>
</tr>
</tbody>
</table>
<h5 id="_69">输入参数</h5>
<table>
<thead>
<tr>
<th align="left">参数</th>
<th align="center">必选</th>
<th align="left">类型</th>
<th align="left">参数说明</th>
<th align="left">备注</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">mobile</td>
<td align="center">是</td>
<td align="left">string</td>
<td align="left">手机号</td>
<td align="left"></td>
</tr>
</tbody>
</table>
<h5 id="_70">错误说明</h5>
<h5 id="_71">返回实例</h5>
<pre><code class="json">
{
    &quot;c&quot;: 0,
    &quot;m&quot;: null,
    &quot;d&quot;: {
        &quot;bindUid&quot;: 12211, 
        &quot;avatar&quot;: &quot;FqobfidNNFd8D9kTNMD3AIHhEZY4.jpg&quot;,
        &quot;roomId&quot;: &quot;B0GR3CK5FZ&quot;,
        &quot;name&quot;: &quot;万鑫小馆&quot;,
        &quot;images&quot;: [
            &quot;http://resources.kinstalk.com/gfetifkkhop3zbdfhmo9.jpg&quot;
        ]
    }
}
</code></pre>

<h4 id="21">2.1 用户配置获取</h4>
<h5 id="_72">接口说明</h5>
<p>根据手机号查询绑定信息</p>
<h5 id="_73">请求说明</h5>
<table>
<thead>
<tr>
<th align="left">http 请求方式</th>
<th align="center">get</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">url</td>
<td align="center">/user/config/get</td>
</tr>
</tbody>
</table>
<h5 id="_74">输入参数</h5>
<p>无</p>
<h5 id="_75">错误说明</h5>
<h5 id="_76">返回实例</h5>
<pre><code class="json">
{
    &quot;c&quot;: 0,
    &quot;m&quot;: null,
    &quot;d&quot;: {
        &quot;uid&quot;: 11632,
        &quot;cfg1&quot;: true,
        &quot;cfg2&quot;: true,
        &quot;createTime&quot;: null,
        &quot;updateTime&quot;: null
    }
}

</code></pre>

<h4 id="21_1">2.1 用户配置更新</h4>
<h5 id="_77">接口说明</h5>
<p>根据手机号查询绑定信息</p>
<h5 id="_78">请求说明</h5>
<table>
<thead>
<tr>
<th align="left">http 请求方式</th>
<th align="center">post</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">url</td>
<td align="center">/user/config/update</td>
</tr>
</tbody>
</table>
<h5 id="_79">输入参数</h5>
<table>
<thead>
<tr>
<th align="left">参数</th>
<th align="center">必选</th>
<th align="left">类型</th>
<th align="left">参数说明</th>
<th align="left">备注</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">cfg1</td>
<td align="center">否</td>
<td align="left">boolean</td>
<td align="left">配置1</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">cfg2</td>
<td align="center">否</td>
<td align="left">boolean</td>
<td align="left">配置2</td>
<td align="left"></td>
</tr>
</tbody>
</table>
<h5 id="_80">错误说明</h5>
<h5 id="_81">返回实例</h5>
<pre><code class="json">
{
    &quot;c&quot;: 0,
    &quot;m&quot;: null,
    &quot;d&quot;: {

    }
}
</code></pre>

<h4 id="22">2.2 用户认证</h4>
<h5 id="_82">接口说明</h5>
<p>用户认证</p>
<h5 id="_83">请求说明</h5>
<table>
<thead>
<tr>
<th align="left">http 请求方式</th>
<th align="center">post</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">url</td>
<td align="center">/user/cert/commit</td>
</tr>
</tbody>
</table>
<h5 id="_84">输入参数</h5>
<table>
<thead>
<tr>
<th align="left">参数</th>
<th align="center">必选</th>
<th align="left">类型</th>
<th align="left">参数说明</th>
<th align="left">备注</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">avatar</td>
<td align="center">是</td>
<td align="left">string</td>
<td align="left">认证头像</td>
<td align="left"></td>
</tr>
</tbody>
</table>
<h5 id="_85">错误说明</h5>
<h5 id="_86">返回实例</h5>
<pre><code class="json">
{
    &quot;c&quot;: 0,
    &quot;m&quot;: null,
    &quot;d&quot;: {

    }
}
</code></pre>

<h4 id="23">2.3 绑定邮箱步骤一</h4>
<h5 id="_87">接口说明</h5>
<p>用户认证</p>
<h5 id="_88">请求说明</h5>
<table>
<thead>
<tr>
<th align="left">http 请求方式</th>
<th align="center">post</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">url</td>
<td align="center">/user/email/bind/step1</td>
</tr>
</tbody>
</table>
<h5 id="_89">输入参数</h5>
<table>
<thead>
<tr>
<th align="left">参数</th>
<th align="center">必选</th>
<th align="left">类型</th>
<th align="left">参数说明</th>
<th align="left">备注</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">email</td>
<td align="center">是</td>
<td align="left">string</td>
<td align="left">绑定邮箱</td>
<td align="left"></td>
</tr>
</tbody>
</table>
<h5 id="_90">错误说明</h5>
<h5 id="_91">返回实例</h5>
<pre><code class="json">
{
    &quot;c&quot;: 0,
    &quot;m&quot;: null,
    &quot;d&quot;: {

    }
}
</code></pre>

<h4 id="23_1">2.3 绑定邮箱步骤二</h4>
<h5 id="_92">接口说明</h5>
<p>用户认证</p>
<h5 id="_93">请求说明</h5>
<table>
<thead>
<tr>
<th align="left">http 请求方式</th>
<th align="center">post</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">url</td>
<td align="center">/user/email/bind/step2</td>
</tr>
</tbody>
</table>
<h5 id="_94">输入参数</h5>
<table>
<thead>
<tr>
<th align="left">参数</th>
<th align="center">必选</th>
<th align="left">类型</th>
<th align="left">参数说明</th>
<th align="left">备注</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">email</td>
<td align="center">是</td>
<td align="left">string</td>
<td align="left">绑定邮箱</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">code</td>
<td align="center">是</td>
<td align="left">string</td>
<td align="left">验证码</td>
<td align="left"></td>
</tr>
</tbody>
</table>
<h5 id="_95">错误说明</h5>
<h5 id="_96">返回实例</h5>
<pre><code class="json">
{
    &quot;c&quot;: 0,
    &quot;m&quot;: null,
    &quot;d&quot;: {

    }
}
</code></pre>

<h4 id="24">2.4 添加经历</h4>
<h5 id="_97">接口说明</h5>
<p>添加用户经历</p>
<h5 id="_98">请求说明</h5>
<table>
<thead>
<tr>
<th align="left">http 请求方式</th>
<th align="center">post</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">url</td>
<td align="center">/user/career/add</td>
</tr>
</tbody>
</table>
<h5 id="_99">输入参数</h5>
<table>
<thead>
<tr>
<th align="left">参数</th>
<th align="center">必选</th>
<th align="left">类型</th>
<th align="left">参数说明</th>
<th align="left">备注</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">startTime</td>
<td align="center">是</td>
<td align="left">string</td>
<td align="left">开始时间</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">endTime</td>
<td align="center">是</td>
<td align="left">string</td>
<td align="left">截止时间</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">type</td>
<td align="center">是</td>
<td align="left">int</td>
<td align="left">类型</td>
<td align="left">1 工作经历 2 教育经历</td>
</tr>
<tr>
<td align="left">workplace</td>
<td align="center">是</td>
<td align="left">string</td>
<td align="left">地点</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">jobTitle</td>
<td align="center">是</td>
<td align="left">string</td>
<td align="left">头衔</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">#####  错误说明</td>
<td align="center"></td>
<td align="left"></td>
<td align="left"></td>
<td align="left"></td>
</tr>
</tbody>
</table>
<h5 id="_100">返回实例</h5>
<pre><code class="json">
{
    &quot;c&quot;: 0,
    &quot;m&quot;: null,
    &quot;d&quot;: {
        &quot;id&quot;:1
    }
}
</code></pre>

<h4 id="25">2.5 修改经历</h4>
<h5 id="_101">接口说明</h5>
<p>添加用户经历</p>
<h5 id="_102">请求说明</h5>
<table>
<thead>
<tr>
<th align="left">http 请求方式</th>
<th align="center">put</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">url</td>
<td align="center">/user/career/update</td>
</tr>
</tbody>
</table>
<h5 id="_103">输入参数</h5>
<table>
<thead>
<tr>
<th align="left">参数</th>
<th align="center">必选</th>
<th align="left">类型</th>
<th align="left">参数说明</th>
<th align="left">备注</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">id</td>
<td align="center">是</td>
<td align="left">int</td>
<td align="left">经历ID</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">startTime</td>
<td align="center">否</td>
<td align="left">string</td>
<td align="left">开始时间</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">endTime</td>
<td align="center">否</td>
<td align="left">string</td>
<td align="left">截止时间</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">type</td>
<td align="center">否</td>
<td align="left">int</td>
<td align="left">类型</td>
<td align="left">1 工作经历 2 教育经历</td>
</tr>
<tr>
<td align="left">workplace</td>
<td align="center">否</td>
<td align="left">string</td>
<td align="left">地点</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">jobTitle</td>
<td align="center">否</td>
<td align="left">string</td>
<td align="left">头衔</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">domain</td>
<td align="center">否</td>
<td align="left">string</td>
<td align="left">专业</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">#####  错误说明</td>
<td align="center"></td>
<td align="left"></td>
<td align="left"></td>
<td align="left"></td>
</tr>
</tbody>
</table>
<h5 id="_104">返回实例</h5>
<pre><code class="json">
{
    &quot;c&quot;: 0,
    &quot;m&quot;: null,
    &quot;d&quot;: {

    }
}
</code></pre>

<h4 id="25_1">2.5 删除经历</h4>
<h5 id="_105">接口说明</h5>
<p>添加用户经历</p>
<h5 id="_106">请求说明</h5>
<table>
<thead>
<tr>
<th align="left">http 请求方式</th>
<th align="center">delete</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">url</td>
<td align="center">/user/career/delete</td>
</tr>
</tbody>
</table>
<h5 id="_107">输入参数</h5>
<table>
<thead>
<tr>
<th align="left">参数</th>
<th align="center">必选</th>
<th align="left">类型</th>
<th align="left">参数说明</th>
<th align="left">备注</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">id</td>
<td align="center">是</td>
<td align="left">int</td>
<td align="left">经历ID</td>
<td align="left"></td>
</tr>
<tr>
<td align="left">#####  错误说明</td>
<td align="center"></td>
<td align="left"></td>
<td align="left"></td>
<td align="left"></td>
</tr>
</tbody>
</table>
<h5 id="_108">返回实例</h5>
<pre><code class="json">
{
    &quot;c&quot;: 0,
    &quot;m&quot;: null,
    &quot;d&quot;: {

    }
}
</code></pre></div>
            </div>
        </div>

        <footer class="col-md-12">
            <hr>
            <p>Documentation built with <a href="https://www.mkdocs.org/">MkDocs</a>.</p>
        </footer>
        <script>
            var base_url = "../..",
                shortcuts = {"help": 191, "next": 78, "previous": 80, "search": 83};
        </script>
        <script src="../../js/base.js" defer></script>
        <script src="../../search/main.js" defer></script>

        <div class="modal" id="mkdocs_search_modal" tabindex="-1" role="dialog" aria-labelledby="searchModalLabel" aria-hidden="true">
    <div class="modal-dialog modal-lg">
        <div class="modal-content">
            <div class="modal-header">
                <h4 class="modal-title" id="searchModalLabel">Search</h4>
                <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
            </div>
            <div class="modal-body">
                <p>
                    From here you can search these documents. Enter
                    your search terms below.
                </p>
                <form>
                    <div class="form-group">
                        <input type="search" class="form-control" placeholder="Search..." id="mkdocs-search-query" title="Type search term here">
                    </div>
                </form>
                <div id="mkdocs-search-results"></div>
            </div>
            <div class="modal-footer">
            </div>
        </div>
    </div>
</div><div class="modal" id="mkdocs_keyboard_modal" tabindex="-1" role="dialog" aria-labelledby="keyboardModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <h4 class="modal-title" id="keyboardModalLabel">Keyboard Shortcuts</h4>
                <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
            </div>
            <div class="modal-body">
              <table class="table">
                <thead>
                  <tr>
                    <th style="width: 20%;">Keys</th>
                    <th>Action</th>
                  </tr>
                </thead>
                <tbody>
                  <tr>
                    <td class="help shortcut"><kbd>?</kbd></td>
                    <td>Open this help</td>
                  </tr>
                  <tr>
                    <td class="next shortcut"><kbd>n</kbd></td>
                    <td>Next page</td>
                  </tr>
                  <tr>
                    <td class="prev shortcut"><kbd>p</kbd></td>
                    <td>Previous page</td>
                  </tr>
                  <tr>
                    <td class="search shortcut"><kbd>s</kbd></td>
                    <td>Search</td>
                  </tr>
                </tbody>
              </table>
            </div>
            <div class="modal-footer">
            </div>
        </div>
    </div>
</div>

    </body>
</html>
